package com.turing.post.account.util;

import java.io.Serializable;
import java.math.BigInteger;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * 联机转账明细
 * 
 * @author kangzhe
 * 
 */
@SuppressWarnings("serial")
@Entity
@Table(name = "ONLINETRANSFERDETAIL")
public class OnlineTransferDetail implements Serializable {

	/**
	 * 0 –充值
	 */
	public final static String OnlineTransfer_TranType_deposit = "0";

	/**
	 * 1 –赎回
	 */
	public final static String OnlineTransfer_TranType_redemp = "1";

	/**
	 * 0-创建
	 */
	public final static String OnlineTransfer_Status_create = "0";

	/**
	 * 1-成功
	 */
	public final static String OnlineTransfer_Status_success = "1";

	/**
	 * 2-失败
	 */
	public final static String OnlineTransfer_Status_fail = "2";

	/**
	 * 3-手工失败
	 */
	public final static String OnlineTransfer_Status_manualFail = "3";

	/**
	 * 4-手工补记
	 */
	public final static String OnlineTransfer_Status_manualSupple = "4";

	/**
	 * 0-未对账
	 */
	public final static String OnlineTransfer_CheckStatus_create = "0";

	/**
	 * 1-一致
	 */
	public final static String OnlineTransfer_CheckStatus_same = "1";

	/**
	 * 2-不一致
	 */
	public final static String OnlineTransfer_CheckStatus_unsame = "2";

	/**
	 * 3-手工调整
	 */
	public final static String OnlineTransfer_CheckStatus_manual = "3";
	
	/**
	 * 联机转账明细流水号
	 */
	private String localSeqNo;

	@Id
	@Column(name = "LOCALSEQNO", nullable = false)
	public String getLocalSeqNo() {
		return localSeqNo;
	}

	public void setLocalSeqNo(String localSeqNo) {
		this.localSeqNo = localSeqNo;
	}

	/**
	 * 发卡商号
	 */
	private String issueCompanyNo;

	@Column(name = "ISSUECOMPANYNO", nullable = false)
	public String getIssueCompanyNo() {
		return issueCompanyNo;
	}

	public void setIssueCompanyNo(String issueCompanyNo) {
		this.issueCompanyNo = issueCompanyNo;
	}

	/**
	 * 销售机构号
	 */
	private String saleBranchNo;

	@Column(name = "SALEBRANCHNO", nullable = false)
	public String getSaleBranchNo() {
		return saleBranchNo;
	}

	public void setSaleBranchNo(String saleBranchNo) {
		this.saleBranchNo = saleBranchNo;
	}

	/**
	 * 账务日期
	 */
	private Date tranDate;

	@Column(name = "TRANDATE", nullable = false)
	public Date getTrandate() {
		return tranDate;
	}

	public void setTrandate(Date tranDate) {
		this.tranDate = tranDate;
	}

	/**
	 * 转账时间
	 */
	private Date tranTime;

	@Column(name = "TRANTIME", nullable = false)
	public Date getTranTime() {
		return tranTime;
	}

	public void setTranTime(Date tranTime) {
		this.tranTime = tranTime;
	}

	/**
	 * 主账号
	 */
	private BigInteger masterAccNo;

	@Column(name = "MASTERACCNO", nullable = false)
	public BigInteger getMasterAccNo() {
		return masterAccNo;
	}

	public void setMasterAccNo(BigInteger masterAccNo) {
		this.masterAccNo = masterAccNo;
	}

	/**
	 * 银行管理ID
	 */
	private BigInteger bankManageId;

	@Column(name = "BANKMANAGEID", nullable = false)
	public BigInteger getBankManageId() {
		return bankManageId;
	}

	public void setBankManageId(BigInteger bankManageId) {
		this.bankManageId = bankManageId;
	}

	/**
	 * 银行账号
	 */
	private String accNo;

	@Column(name = "ACCNO", nullable = false)
	public String getAccNo() {
		return accNo;
	}

	public void setAccNo(String accNo) {
		this.accNo = accNo;
	}

	/**
	 * 交易类型
	 */
	private String tranType;

	@Column(name = "TRANTYPE", nullable = false)
	public String getTranType() {
		return tranType;
	}

	public void setTranType(String tranType) {
		this.tranType = tranType;
	}

	/**
	 * 状态
	 */
	private String status;

	@Column(name = "STATUS", nullable = false)
	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	/**
	 * 对账状态
	 */
	private String checkStatus;

	@Column(name = "CHECKSTATUS", nullable = false)
	public String getCheckStatus() {
		return checkStatus;
	}

	public void setCheckStatus(String checkStatus) {
		this.checkStatus = checkStatus;
	}

	/**
	 * 卡号
	 */
	private String cardNo;

	@Column(name = "CARDNO", nullable = false)
	public String getCardNo() {
		return cardNo;
	}

	public void setCardNo(String cardNo) {
		this.cardNo = cardNo;
	}

	/**
	 * 金额
	 */
	private BigInteger amount;

	@Column(name = "AMOUNT", nullable = false)
	public BigInteger getAmount() {
		return amount;
	}

	public void setAmount(BigInteger amount) {
		this.amount = amount;
	}

	/**
	 * 对方响应码
	 */
	private String bankRespCode;

	@Column(name = "BANKRESPCODE", nullable = true)
	public String getBankRespCode() {
		return bankRespCode;
	}

	public void setBankRespCode(String bankRespCode) {
		this.bankRespCode = bankRespCode;
	}

	/**
	 * 应答流水号
	 */
	private String bankAckSeqNo;

	@Column(name = "BANKACKSEQNO", nullable = true)
	public String getBankAckSeqNo() {
		return bankAckSeqNo;
	}

	public void setBankAckSeqNo(String bankAckSeqNo) {
		this.bankAckSeqNo = bankAckSeqNo;
	}

	/**
	 * 账户子系统记账流水号
	 */
	private String accSeqNo;

	@Column(name = "ACCSEQNO", nullable = true)
	public String getAccSeqNo() {
		return accSeqNo;
	}

	public void setAccSeqNo(String accSeqNo) {
		this.accSeqNo = accSeqNo;
	}

	/**
	 * 调账账务日期
	 */
	private Date adjustDate;

	@Column(name = "ADJUSTDATE", nullable = true)
	public Date getAdjustDate() {
		return adjustDate;
	}

	public void setAdjustDate(Date adjustDate) {
		this.adjustDate = adjustDate;
	}

	/**
	 * 手工调整时间
	 */
	private Date adjustTime;

	@Column(name = "ADJUSTTIME", nullable = true)
	public Date getAdjustTime() {
		return adjustTime;
	}

	public void setAdjustTime(Date adjustTime) {
		this.adjustTime = adjustTime;
	}

	/**
	 * 手工调整操作员
	 */
	private BigInteger adjustOperId;

	@Column(name = "ADJUSTOPERID", nullable = true)
	public BigInteger getAdjustOperId() {
		return adjustOperId;
	}

	public void setAdjustOperId(BigInteger adjustOperId) {
		this.adjustOperId = adjustOperId;
	}

	/**
	 * 操作员号
	 */
	private BigInteger operId;

	@Column(name = "OPERID", nullable = false)
	public BigInteger getOperId() {
		return operId;
	}

	public void setOperId(BigInteger operId) {
		this.operId = operId;
	}

	/**
	 * 备注
	 */
	private String remark;

	@Column(name = "REMARK", nullable = true)
	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

}
